#pragma once
#include "SecrecySystem.h"

/**
 *  Module Name: 	AESSubstitution.h
 *  
 *  Module defines Substitution operations used by the AES secrecy algorithm.
 *
 * 
 * @author Ravi Mohandas, Mar 06 2011
 */


/** substitution routines 
 *	replace from the sbox to introduce non-linearity 
 *	into the algorithm 
*/
byte subByte (byte val);
byte inv_subByte (byte val);

void subWord (byte w[]);
void inv_subWord (byte w[]);

void subBytes (byte* stateRow, int nCols);
